import { get, post, put, del } from '@/public/request';

/**
 * 获取函数类型列表
 * @returns {Promise} 返回Promise对象
 */
export function getFunctionTypes() {
  return get('/government/function/types');
}

/**
 * 分页查询函数列表
 * @param {Object} params - 查询参数 { page, size, name, type }
 * @returns {Promise} 返回Promise对象
 */
export function getFunctionList(params) {
  return get('/government/function/page', params);
}

/**
 * 获取函数详情
 * @param {Number} id - 函数ID
 * @returns {Promise} 返回Promise对象
 */
export function getFunctionDetail(id) {
  return get(`/government/function/${id}`);
}

/**
 * 新增函数
 * @param {Object} data - 函数数据
 * @returns {Promise} 返回Promise对象
 */
export function createFunction(data) {
  return post('/government/function', data);
}

/**
 * 更新函数
 * @param {Object} data - 函数数据
 * @returns {Promise} 返回Promise对象
 */
export function updateFunction(data) {
  return put('/government/function', data);
}

/**
 * 删除函数
 * @param {Number} id - 函数ID
 * @returns {Promise} 返回Promise对象
 */
export function deleteFunction(id) {
  return del(`/government/function/${id}`);
}

/**
 * 启用函数
 * @param {Number} id - 函数ID
 * @returns {Promise} 返回Promise对象
 */
export function enableFunction(id) {
  return put(`/government/function/enable/${id}`);
}

/**
 * 禁用函数
 * @param {Number} id - 函数ID
 * @returns {Promise} 返回Promise对象
 */
export function disableFunction(id) {
  return put(`/government/function/disable/${id}`);
}

/**
 * 测试执行函数
 * @param {String} functionName - 函数名称
 * @param {Object} params - 函数参数
 * @returns {Promise} 返回Promise对象
 */
export function testFunction(functionName, params) {
  return post(`/government/function/test/${functionName}`, params);
}

/**
 * 获取所有启用状态的函数定义列表
 * @returns {Promise} 返回Promise对象
 */
export function getFunctionSchemas() {
  return get('/government/function/schemas');
} 